package com_.dxy_test_.main_await_;

import java.io.IOException;

/**
 * @Description 测试Main进程不退出的几种方式
 * @Author dangxianyue
 * @Date 2022/11/8 11:25
 */
public class MainAwaitTest {

    //System.in.read()，简单粗暴，一般只在开始测试时使用
//    public static void main(String[] args) throws IOException {
//        System.out.println(1);
//        System.in.read();//从键盘读出一个字符,然后返回它的Unicode码，输入后Main进程才会退出
//        System.out.println(2);
//    }

    //Object.wait()，需要 synchronized 配合使用，繁琐
//    public static void main(String[] args) throws InterruptedException {
//        System.out.println(1);
//        Object o = new Object();
//        synchronized (o) {
//            o.wait();
//        }
//        System.out.println(2);
//    }

    //while(true)+sleep，可以在生产上使用，SpringBoot的Main线程阻塞就是这样
    public static void main(String[] args) throws InterruptedException {
        System.out.println(1);
        while (true) {
            Thread.sleep(1000L);//睡眠一下防止CPU空转
            System.out.println(2);
        }
    }
}
